home *** CD-ROM | disk | FTP | other *** search
-
-
-
- CCCCSSSSVVVVDDDDCCCC((((3333FFFF)))) CCCCSSSSVVVVDDDDCCCC((((3333FFFF))))
-
-
-
- NNNNAAAAMMMMEEEE
- CSVDC - CSVDC is a subroutine to reduce a complex NxP matrix X by
- unitary transformations U and V to diagonal form. The diagonal elements
- S(I) are the singular values of X. The columns of U are the
- corresponding left singular vectors, and the columns of V the right
- singular vectors.
-
-
- SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
- SUBROUTINE CSVDC(X,LDX,N,P,S,E,U,LDU,V,LDV,WORK,JOB,INFO)
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- On Entry
-
- XXXX COMPLEX(LDX,P), where LDX .GE. N.
- X contains the matrix whose singular value
- decomposition is to be computed. X is
- destroyed by CSVDC.
-
- LLLLDDDDXXXX INTEGER.
- LDX is the leading dimension of the array X.
-
- NNNN INTEGER.
- N is the number of columns of the matrix X.
-
- PPPP INTEGER.
- P is the number of rows of the matrix X.
-
- LLLLDDDDUUUU INTEGER.
- LDU is the leading dimension of the array U
- (see below).
-
- LLLLDDDDVVVV INTEGER.
- LDV is the leading dimension of the array V
- (see below).
-
- WWWWOOOORRRRKKKK COMPLEX(N).
- WORK is a scratch array.
-
- JJJJOOOOBBBB INTEGER.
- JOB controls the computation of the singular
- vectors. It has the decimal expansion AB
- with the following meaning
- A .EQ. 0 Do not compute the left singular
- vectors.
- A .EQ. 1 Return the N left singular vectors
- in U.
- A .GE. 2 Return the first MIN(N,P)
- left singular vectors in U.
- B .EQ. 0 Do not compute the right singular
- vectors.
- B .EQ. 1 Return the right singular vectors
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- CCCCSSSSVVVVDDDDCCCC((((3333FFFF)))) CCCCSSSSVVVVDDDDCCCC((((3333FFFF))))
-
-
-
- in V. On Return
-
- SSSS COMPLEX(MM), where MM = MIN(N+1,P).
- The first MIN(N,P) entries of S contain the
- singular values of X arranged in descending
- order of magnitude.
-
- EEEE COMPLEX(P).
- E ordinarily contains zeros. However see the
- discussion of INFO for exceptions.
-
- UUUU COMPLEX(LDU,K), where LDU .GE. N. If JOBA .EQ. 1
- then K .EQ. N. If JOBA .GE. 2 then
- K .EQ. MIN(N,P).
- U contains the matrix of right singular vectors.
- U is not referenced if JOBA .EQ. 0. If N .LE. P
- or if JOBA .GT. 2, then U may be identified with X
- in the subroutine call.
-
- VVVV COMPLEX(LDV,P), where LDV .GE. P.
- V contains the matrix of right singular vectors.
- V is not referenced if JOB .EQ. 0. If P .LE. N,
- then V may be identified with X in the
- subroutine call.
-
- IIIINNNNFFFFOOOO INTEGER.
- The singular values (and their corresponding
- singular vectors) S(INFO+1),S(INFO+2),...,S(M)
- are correct (here M=MIN(N,P)). Thus if
- INFO.EQ. 0, all the singular values and their
- vectors are correct. In any event, the matrix
- B = CTRANS(U)*X*V is the bidiagonal matrix
- with the elements of S on its diagonal and the
- elements of E on its super-diagonal (CTRANS(U)
- is the conjugate-transpose of U). Thus the
- singular values of X and B are the same. LINPACK. This version dated
- 03/19/79 . Stewart, G. W., University of Maryland, Argonne National Lab.
-
- CCCCSSSSVVVVDDDDCCCC uses the following functions and subprograms. External CSROT BLAS
- CAXPY,CDOTC,CSCAL,CSWAP,SCNRM2,SROTG Fortran ABS,AIMAG,AMAX1,CABS,CMPLX
- Fortran CONJG,MAX0,MIN0,MOD,REAL,SQRT
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-